<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_liquidaciones.php");
require_once("../Datos/Selectores/Sel_Ventas_No_Guion.php");

class Sel_Liquidar_Vendedores extends Selector{

	function Sel_Liquidar_Vendedores(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Liquidar_Vendedores";
		$this->estTablaBase(new Tbl_ec_liquidaciones($conexion, ''));
		
		$relacionada = new SubConsulta(new Sel_Ventas($conexion, $articulo), 'Ventas');
		$this->agregarTablaRelacionada($relacionada, 'RIGHT JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('liq_venta'), $this->obtCampoRelacionado('Ventas', 'ven_id'), '=');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('liq_usuario'), $this->obtCampoRelacionado('Ventas', 'id_Vendedor'), '=');
		
		$campo = $this->obtCampoRelacionado('Ventas', 'ven_id');
		$campo->estAlias("Venta");
		$campo->estEsGrupo(1);
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'id_Vendedor');
		$campo->estAlias('Cod. Vendedor');
		$campo->estOcultoListado(1);
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Vendedor');
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Cliente');
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Localidad');
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Fecha_Venta');
		$campo->estAlias("Fecha Venta");
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Articulo');
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);		
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Monto');
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Com_Vendedor');
		$campo->estAlias("Comision (%)");
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->tablaBase;
		$funcion = new Funcion('Liquidado', 'IF', $tabla);
		$funcion->agregarExpresion("SUM(liq_monto), FORMAT(SUM(liq_monto), 2), 0");
		$funcion->estEsBase(1);
		$funcion->estNoIngresar(1);
		$funcion->estEsReadOnly(1);
		$this->agregarCampoVisible($funcion);
		
		$tabla = $this->tablaBase;
		$funcion = new Funcion('Pendiente', 'IF', $tabla);
		$funcion->agregarExpresion("SUM(liq_monto), FORMAT((Ventas.Monto * Ventas.Com_Vendedor / 100) - SUM(liq_monto), 2), Ventas.Monto * Ventas.Com_Vendedor / 100");
		$funcion->estEsBase(1);
		$funcion->estNoIngresar(1);
		$funcion->estEsReadOnly(1);
		$this->agregarCampoVisible($funcion);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Pago');
		$campo->estAlias("Tipo");
		$campo->estEsBase(1);
		$campo->estNoIngresar(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);		
		
		$campo = $this->tablaBase->obtCampo('liq_id');
		$campo->estAlias("Codigo");
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);

		$campo = $this->tablaBase->obtCampo('liq_fecha');
		$campo->estAlias("Fecha Liquidacion");
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);

		$campo = $this->tablaBase->obtCampo('liq_monto');
		$campo->estAlias("Monto Liquidado");
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$this->estCondicion("(liq_cob_ven = 2 OR liq_cob_ven IS NULL)");
		
		$this->estHaving("Pendiente > 0");
		
		if($_SESSION['login']['log_nivel_acceso'] < 3){
			$this->AgregarCondicion(1, $_SESSION['login']['log_id']);
		}

		$this->txtConsulta = $this->GenerarConsulta();
 }
 function Ejecutar($post){
 	if($post['op'] == "liquidar"){
		$this->tablaBase->set_liq_venta($post['0']);
		$this->tablaBase->set_liq_usuario($post['1']);
		$this->tablaBase->set_liq_fecha($post['13']);
		$this->tablaBase->set_liq_monto($post['14']);
		$this->tablaBase->set_liq_cob_ven(2);
		
		$this->tablaBase->Insertar();
	}
 }
}
?>
